#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>


//int main()
//{
//	int a = 0, b = 0;
//	int i = a || b;
//	printf("%d\n", i);
//	return 0;
//}

//int main()
//{
//	int a = 3;
//	int b = -5;
//	int c = a ^ b;
//	printf("%d\n", c);
//	return 0;
//
//}


//int main()
//{
//    int i = 1;
//    int ret = (++i) + (++i) + (++i);
//    printf("ret = %d\n", ret);
//    return 0;
//}
//int i;
//int main()
//{
//    printf("%d\n",i);
//    i--;
//    printf("%d\n", i);
//
//    if (i > sizeof(i))
//    {
//        printf(">\n");
//    }
//    else
//    {
//        printf("<\n");
//    }
//    return 0;
//}

int main()
{
	int n, m,arr1[1000],arr2[1000],arr3[3000];
	scanf("%d%d", &n, &m);
	
	for (int i = 0; i < n; i++)
	{
		scanf("%d", &arr1[i]);
	}
	for (int i = 0; i < m; i++)
	{
		scanf("%d", &arr2[i]);
	}
//	printf("\n");
	int i = 0, j = 0, k = 0;
	for ( k = 0; k < m + n; k++)
	{
		
		if (i < n && j < m)
		{
			if (arr1[i] < arr2[j])
			{
				arr3[k] = arr1[i];
				i++;
			}
			else
			{
				arr3[k] = arr2[j];
				j++;
			}
			printf("%d ", arr3[k]);
		}
	}
	if (i == n && j < m)
	{
		for (; j < m; j++)
		{
			printf("%d ", arr2[j]);
		}
	}
	else
	{
		for (; i < n; i++)
		{
			printf("%d ", arr1[i]);
		}
	}
	/*for (int k = 0; k < n + m; k++)
	{
		printf("%d ", arr3[k]);
	}*/
	return 0;
}